<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<script type="text/javascript">
			//1. 写一个函数 `ucFirst(str)`，并返回首字母大写的字符串 `str`，例如：
			//ucFirst("john") == "John";
			
			//---------------------方法一
			function ucfirst(str) {
			var str = str.toLowerCase();//字符串大写
			//+为重复1次或更多次
			// 		  替换  \b词边界 头尾都是字母，\w所有字符串[A-Za-z0-9_]，g匹配所有项不只是第一个
			str = str.replace(/\b\w+\b/g, function(word){
				//// toUpperCase() 方法用于将一个字符串全部转为大写（不改变原字符串）
				//字符串下标【0】字母大写加上，下标【1】以后的字母
			  return word.charAt(0).toUpperCase()+word.substring(1);//substring（a，b）从下标第a个到下标第b个，1到最后一个
			});
			return str; 
			}
			console.log(ucfirst('sadtr'));
			
			//---------------------方法二
			function ucFirst(str){
			var str = str.toLowerCase();//将一个字符串全部转为大写（不改变原字符串）
			var strArr = str.split(' ');//把一个字符串分割成字符串数组。
			var result = '';//存放for in之后的字符串
			for(var i in strArr){
			result += strArr[i].charAt(0).toUpperCase()+strArr[i].substring(1)+' ';
			}
			return result;
			}
			console.log(ucFirst('jfs'));
			
			//---------------------方法三
			function UnFirst(str){
				//  // 定义一个str2，先将str全部转为小写的单词
            // var str2 = str.toLowerCase();
            // 遍历str2，取到每个小写字母的下标
            // for (var i = 0; i < str2.length; i++) {
            //     将单词首字母大写和下标从1开始往后匹配的小写字母拼接起来
            //     return str2.slice(0, 1).toUpperCase() + str2.slice(1);
            // }
			//charAt() 方法返回指定位置的字符charAt(0)='l'
			//slice()用于从原字符串取出子字符串并返回,slice(a,b) a<=slice(a,b)<b;slice(0,2)=='lo'
				return str.charAt(0).toUpperCase()+str.slice(1);
			}
			console.log(UnFirst('love'))
		</script>
	</body>
</html>
